package cn.lingyangwl.agile.misc.statistic.service;

import java.util.Map;

/**
 * 统计缓存服务
 * @author shenguangyang
 */
public interface StatCacheService {
    /**
     *
     * @param entityName 实体名
     * @param date 日期
     * @param delta 增加的值
     * @param fields 字段名
     */
    void incr(String tenantId, String entityName, String date, Long delta, String... fields);

    Long getIncr(String tenantId, String entityName, String date, String... fields);

    /**
     * 一般用于需要按照小时维度进行实时统计
     * @param hashKey 可以是小时(01, 02, 18) 或 其他
     */
    void hashIncr(String tenantId, String entityName, String date, String hashKey, Long delta, String... fields);

    /**
     * 返回的map中的key 是方法中的hashKey
     */
    Map<String, Long> getHashIncr(String tenantId, String entityName, String date, String... fields);
}
